<!DOCTYPE html>
<html>

<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
	<meta name="theme-color" content="#33474d">
	<title>Linux 命令- lsof | 失落的乐章</title>
	<link rel="stylesheet" href="/css/style.css" />
	
      <link rel="alternate" href="/atom.xml" title="失落的乐章" type="application/atom+xml">
    
</head>

<body>

	<header class="header">
		<nav class="header__nav">
			
				<a href="/archives" class="header__link">Archive</a>
			
				<a href="/tags" class="header__link">Tags</a>
			
				<a href="/atom.xml" class="header__link">RSS</a>
			
		</nav>
		<h1 class="header__title"><a href="/">失落的乐章</a></h1>
		<h2 class="header__subtitle">技术面前，永远都是学生。</h2>
	</header>

	<main>
		<article>
	
		<h1>Linux 命令- lsof</h1>
	
	<div class="article__infos">
		<span class="article__date">2017-10-12</span><br />
		
		
			<span class="article__tags">
			  	<a class="article__tag-link" href="/tags/Linux命令/">Linux命令</a>
			</span>
		
	</div>

	

	
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;lsof（list open files）是一个列出当前系统打开文件的工具。在linux环境下，任何事物都以文件的形式存在，通过文件不仅仅可以访问常规数据，还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等，系统在后台都为该应用程序分配了一个文件描述符，无论这个文件的本质如何，该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息，因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。</p>
<h2 id="1．命令格式"><a href="#1．命令格式" class="headerlink" title="1．命令格式"></a>1．命令格式</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof [参数] [文件]</div></pre></td></tr></table></figure>
<h2 id="2．命令功能"><a href="#2．命令功能" class="headerlink" title="2．命令功能"></a>2．命令功能</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;用于查看你进程开打的文件，打开文件的进程，进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具，因为 lsof 需要访问核心内存和各种文件，所以需要root用户执行。</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;lsof打开的文件可以是：</p>
<ol>
<li>普通文件</li>
<li>目录</li>
<li>网络文件系统的文件</li>
<li>字符或设备文件</li>
<li>(函数)共享库</li>
<li>管道，命名管道</li>
<li>符号链接</li>
<li>网络文件（例如：NFS file、网络socket，unix域名socket）</li>
<li>还有其它类型的文件，等等</li>
</ol>
<h2 id="3．命令参数"><a href="#3．命令参数" class="headerlink" title="3．命令参数"></a>3．命令参数</h2><ul>
<li>-a 列出打开文件存在的进程</li>
<li>-c&lt;进程名&gt; 列出指定进程所打开的文件</li>
<li>-g  列出GID号进程详情</li>
<li>-d&lt;文件号&gt; 列出占用该文件号的进程</li>
<li>+d&lt;目录&gt;  列出目录下被打开的文件</li>
<li>+D&lt;目录&gt;  递归列出目录下被打开的文件</li>
<li>-n&lt;目录&gt;  列出使用NFS的文件</li>
<li>-i&lt;条件&gt;  列出符合条件的进程。（4、6、协议、:端口、 @ip ）</li>
<li>-p&lt;进程号&gt; 列出指定进程号所打开的文件</li>
<li>-u  列出UID号进程详情</li>
<li>-h 显示帮助信息</li>
<li>-v 显示版本信息</li>
</ul>
<h2 id="4．使用实例"><a href="#4．使用实例" class="headerlink" title="4．使用实例"></a>4．使用实例</h2><h3 id="实例1：无任何参数"><a href="#实例1：无任何参数" class="headerlink" title="实例1：无任何参数"></a>实例1：无任何参数</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div><div class="line">22</div><div class="line">23</div><div class="line">24</div><div class="line">25</div><div class="line">26</div><div class="line">27</div><div class="line">28</div></pre></td><td class="code"><pre><div class="line">[root@localhost ~]<span class="comment"># lsof</span></div><div class="line"></div><div class="line">COMMAND     PID USER   FD      TYPE             DEVICE     SIZE       NODE NAME</div><div class="line">init          1 root  cwd       DIR                8,2     4096          2 /</div><div class="line">init          1 root  rtd       DIR                8,2     4096          2 /</div><div class="line">init          1 root  txt       REG                8,2    43496    6121706 /sbin/init</div><div class="line">init          1 root  mem       REG                8,2   143600    7823908 /lib64/ld-2.5.so</div><div class="line">init          1 root  mem       REG                8,2  1722304    7823915 /lib64/libc-2.5.so</div><div class="line">init          1 root  mem       REG                8,2    23360    7823919 /lib64/libdl-2.5.so</div><div class="line">init          1 root  mem       REG                8,2    95464    7824116 /lib64/libselinux.so.1</div><div class="line">init          1 root  mem       REG                8,2   247496    7823947 /lib64/libsepol.so.1</div><div class="line">init          1 root   10u     FIFO               0,17                1233 /dev/initctl</div><div class="line">migration     2 root  cwd       DIR                8,2     4096          2 /</div><div class="line">migration     2 root  rtd       DIR                8,2     4096          2 /</div><div class="line">migration     2 root  txt   unknown                                        /proc/2/exe</div><div class="line">ksoftirqd     3 root  cwd       DIR                8,2     4096          2 /</div><div class="line">ksoftirqd     3 root  rtd       DIR                8,2     4096          2 /</div><div class="line">ksoftirqd     3 root  txt   unknown                                        /proc/3/exe</div><div class="line">migration     4 root  cwd       DIR                8,2     4096          2 /</div><div class="line">migration     4 root  rtd       DIR                8,2     4096          2 /</div><div class="line">migration     4 root  txt   unknown                                        /proc/4/exe</div><div class="line">ksoftirqd     5 root  cwd       DIR                8,2     4096          2 /</div><div class="line">ksoftirqd     5 root  rtd       DIR                8,2     4096          2 /</div><div class="line">ksoftirqd     5 root  txt   unknown                                        /proc/5/exe</div><div class="line">events/0      6 root  cwd       DIR                8,2     4096          2 /</div><div class="line">events/0      6 root  rtd       DIR                8,2     4096          2 /</div><div class="line">events/0      6 root  txt   unknown                                        /proc/6/exe</div><div class="line">events/1      7 root  cwd       DIR                8,2     4096          2 /</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>lsof输出各列信息的意义如下：</strong></p>
<ul>
<li>COMMAND：进程的名称</li>
<li>PID：进程标识符</li>
<li>PPID：父进程标识符（需要指定-R参数）</li>
<li>USER：进程所有者</li>
<li>PGID：进程所属组</li>
<li>FD：文件描述符，应用程序通过文件描述符识别该文件。如cwd、txt等<ul>
<li>（1）cwd：表示current work dirctory，即：应用程序的当前工作目录，这是该应用程序启动的目录，除非它本身对这个目录进行更改</li>
<li>（2）txt ：该类型的文件是程序代码，如应用程序二进制文件本身或共享库，如上列表中显示的 /sbin/init 程序</li>
<li>（3）lnn：library references (AIX);</li>
<li>（4）er：FD information error (see NAME column);</li>
<li>（5）jld：jail directory (FreeBSD);</li>
<li>（6）ltx：shared library text (code and data);</li>
<li>（7）mxx ：hex memory-mapped type number xx.</li>
<li>（8）m86：DOS Merge mapped file;</li>
<li>（9）mem：memory-mapped file;</li>
<li>（10）mmap：memory-mapped device;</li>
<li>（11）pd：parent directory;</li>
<li>（12）rtd：root directory;</li>
<li>（13）tr：kernel trace file (OpenBSD);</li>
<li>（14）v86  VP/ix mapped file;</li>
<li>（15）0：表示标准输出</li>
<li>（16）1：表示标准输入</li>
<li>（17）2：表示标准错误</li>
</ul>
</li>
<li>一般在标准输出、标准错误、标准输入后还跟着文件状态模式：r、w、u等<ul>
<li>（1）u：表示该文件被打开并处于读取/写入模式</li>
<li>（2）r：表示该文件被打开并处于只读模式</li>
<li>（3）w：表示该文件被打开并处于</li>
<li>（4）空格：表示该文件的状态模式为unknow，且没有锁定</li>
<li>（5）-：表示该文件的状态模式为unknow，且被锁定</li>
</ul>
</li>
<li>同时在文件状态模式后面，还跟着相关的锁<ul>
<li>（1）N：for a Solaris NFS lock of unknown type;</li>
<li>（2）r：for read lock on part of the file;</li>
<li>（3）R：for a read lock on the entire file;</li>
<li>（4）w：for a write lock on part of the file;（文件的部分写锁）</li>
<li>（5）W：for a write lock on the entire file;（整个文件的写锁）</li>
<li>（6）u：for a read and write lock of any length;</li>
<li>（7）U：for a lock of unknown type;</li>
<li>（8）x：for an SCO OpenServer Xenix lock on part      of the file;</li>
<li>（9）X：for an SCO OpenServer Xenix lock on the      entire file;</li>
<li>（10）space：if there is no lock.</li>
</ul>
</li>
<li>TYPE：文件类型，如DIR、REG等，常见的文件类型<ul>
<li>（1）DIR：表示目录</li>
<li>（2）CHR：表示字符类型</li>
<li>（3）BLK：块设备类型</li>
<li>（4）UNIX： UNIX 域套接字</li>
<li>（5）FIFO：先进先出 (FIFO) 队列</li>
<li>（6）IPv4：网际协议 (IP) 套接字</li>
</ul>
</li>
<li>DEVICE：指定磁盘的名称</li>
<li>SIZE：文件的大小</li>
<li>NODE：索引节点（文件在磁盘上的标识）</li>
<li>NAME：打开文件的确切名称</li>
</ul>
<h3 id="实例2：查看谁正在使用某个文件，也就是说查找某个文件相关的进程"><a href="#实例2：查看谁正在使用某个文件，也就是说查找某个文件相关的进程" class="headerlink" title="实例2：查看谁正在使用某个文件，也就是说查找某个文件相关的进程"></a>实例2：查看谁正在使用某个文件，也就是说查找某个文件相关的进程</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof /bin/bash</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div></pre></td><td class="code"><pre><div class="line">[root@localhost ~]<span class="comment"># lsof /bin/bash</span></div><div class="line">COMMAND   PID USER  FD   TYPE DEVICE   SIZE    NODE NAME</div><div class="line">bash    24159 root txt    REG    8,2 801528 5368780 /bin/bash</div><div class="line">bash    24909 root txt    REG    8,2 801528 5368780 /bin/bash</div><div class="line">bash    24941 root txt    REG    8,2 801528 5368780 /bin/bash</div><div class="line">[root@localhost ~]<span class="comment">#</span></div></pre></td></tr></table></figure>
<h3 id="实例3：递归查看某个目录的文件信息"><a href="#实例3：递归查看某个目录的文件信息" class="headerlink" title="实例3：递归查看某个目录的文件信息"></a>实例3：递归查看某个目录的文件信息</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof <span class="built_in">test</span>/test3</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div></pre></td><td class="code"><pre><div class="line">[root@localhost ~]<span class="comment"># cd /opt/soft/</span></div><div class="line">[root@localhost soft]<span class="comment"># lsof test/test3</span></div><div class="line">COMMAND   PID USER   FD   TYPE DEVICE SIZE    NODE NAME</div><div class="line">bash    24941 root  cwd    DIR    8,2 4096 2258872 <span class="built_in">test</span>/test3</div><div class="line">vi      24976 root  cwd    DIR    8,2 4096 2258872 <span class="built_in">test</span>/test3</div><div class="line">[root@localhost soft]<span class="comment">#</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;使用了+D，对应目录下的所有子目录和文件都会被列出</p>
<h3 id="实例4：不使用-D选项，遍历查看某个目录的所有文件信息的方法"><a href="#实例4：不使用-D选项，遍历查看某个目录的所有文件信息的方法" class="headerlink" title="实例4：不使用+D选项，遍历查看某个目录的所有文件信息的方法"></a>实例4：不使用+D选项，遍历查看某个目录的所有文件信息的方法</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof |grep <span class="string">'test/test3'</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div></pre></td><td class="code"><pre><div class="line">[root@localhost soft]<span class="comment"># lsof |grep 'test/test3'</span></div><div class="line">bash      24941 root  cwd       DIR                8,2     4096    2258872 /opt/soft/<span class="built_in">test</span>/test3</div><div class="line">vi        24976 root  cwd       DIR                8,2     4096    2258872 /opt/soft/<span class="built_in">test</span>/test3</div><div class="line">vi        24976 root    4u      REG                8,2    12288    2258882 /opt/soft/<span class="built_in">test</span>/test3/.log2013.log.swp</div><div class="line">[root@localhost soft]<span class="comment">#</span></div></pre></td></tr></table></figure>
<h3 id="实例5：列出某个用户打开的文件信息"><a href="#实例5：列出某个用户打开的文件信息" class="headerlink" title="实例5：列出某个用户打开的文件信息"></a>实例5：列出某个用户打开的文件信息</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -u username</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong><br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-u 选项，u其实是user的缩写</p>
<h3 id="实例6：列出某个程序进程所打开的文件信息"><a href="#实例6：列出某个程序进程所打开的文件信息" class="headerlink" title="实例6：列出某个程序进程所打开的文件信息"></a>实例6：列出某个程序进程所打开的文件信息</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -c mysql</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong><br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-c 选项将会列出所有以mysql这个进程开头的程序的文件，其实你也可以写成 lsof | grep mysql, 但是第一种方法明显比第二种方法要少打几个字符了</p>
<h3 id="实例7：列出多个进程多个打开的文件信息"><a href="#实例7：列出多个进程多个打开的文件信息" class="headerlink" title="实例7：列出多个进程多个打开的文件信息"></a>实例7：列出多个进程多个打开的文件信息</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -c mysql -c apache</div></pre></td></tr></table></figure>
<h3 id="实例8：列出某个用户以及某个进程所打开的文件信息"><a href="#实例8：列出某个用户以及某个进程所打开的文件信息" class="headerlink" title="实例8：列出某个用户以及某个进程所打开的文件信息"></a>实例8：列出某个用户以及某个进程所打开的文件信息</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof  -u <span class="built_in">test</span> -c mysql</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong><br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;用户与进程可相关，也可以不相关</p>
<h3 id="实例9：列出除了某个用户外的被打开的文件信息"><a href="#实例9：列出除了某个用户外的被打开的文件信息" class="headerlink" title="实例9：列出除了某个用户外的被打开的文件信息"></a>实例9：列出除了某个用户外的被打开的文件信息</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -u ^root</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong><br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;^这个符号在用户名之前，将会把是root用户打开的进程不让显示</p>
<h3 id="实例10：通过某个进程号显示该进行打开的文件"><a href="#实例10：通过某个进程号显示该进行打开的文件" class="headerlink" title="实例10：通过某个进程号显示该进行打开的文件"></a>实例10：通过某个进程号显示该进行打开的文件</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -p 1</div></pre></td></tr></table></figure>
<h3 id="实例11：列出多个进程号对应的文件信息"><a href="#实例11：列出多个进程号对应的文件信息" class="headerlink" title="实例11：列出多个进程号对应的文件信息"></a>实例11：列出多个进程号对应的文件信息</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -p 1,2,3</div></pre></td></tr></table></figure>
<h3 id="实例12：列出除了某个进程号，其他进程号所打开的文件信息"><a href="#实例12：列出除了某个进程号，其他进程号所打开的文件信息" class="headerlink" title="实例12：列出除了某个进程号，其他进程号所打开的文件信息"></a>实例12：列出除了某个进程号，其他进程号所打开的文件信息</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -p ^1</div></pre></td></tr></table></figure>
<h3 id="实例13：列出所有的网络连接"><a href="#实例13：列出所有的网络连接" class="headerlink" title="实例13：列出所有的网络连接"></a>实例13：列出所有的网络连接</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -i</div></pre></td></tr></table></figure>
<h3 id="实例14：列出所有tcp-网络连接信息"><a href="#实例14：列出所有tcp-网络连接信息" class="headerlink" title="实例14：列出所有tcp 网络连接信息"></a>实例14：列出所有tcp 网络连接信息</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -i tcp</div></pre></td></tr></table></figure>
<h3 id="实例15：列出所有udp网络连接信息"><a href="#实例15：列出所有udp网络连接信息" class="headerlink" title="实例15：列出所有udp网络连接信息"></a>实例15：列出所有udp网络连接信息</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -i udp</div></pre></td></tr></table></figure>
<h3 id="实例16：列出谁在使用某个端口"><a href="#实例16：列出谁在使用某个端口" class="headerlink" title="实例16：列出谁在使用某个端口"></a>实例16：列出谁在使用某个端口</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -i :3306</div></pre></td></tr></table></figure>
<h3 id="实例17：列出谁在使用某个特定的udp端口"><a href="#实例17：列出谁在使用某个特定的udp端口" class="headerlink" title="实例17：列出谁在使用某个特定的udp端口"></a>实例17：列出谁在使用某个特定的udp端口</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -i udp:55</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;或者：特定的tcp端口</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -i tcp:80</div></pre></td></tr></table></figure>
<h3 id="实例18：列出某个用户的所有活跃的网络端口"><a href="#实例18：列出某个用户的所有活跃的网络端口" class="headerlink" title="实例18：列出某个用户的所有活跃的网络端口"></a>实例18：列出某个用户的所有活跃的网络端口</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -a -u <span class="built_in">test</span> -i</div></pre></td></tr></table></figure>
<h3 id="实例19：列出所有网络文件系统"><a href="#实例19：列出所有网络文件系统" class="headerlink" title="实例19：列出所有网络文件系统"></a>实例19：列出所有网络文件系统</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -N</div></pre></td></tr></table></figure>
<h3 id="实例20：域名socket文件"><a href="#实例20：域名socket文件" class="headerlink" title="实例20：域名socket文件"></a>实例20：域名socket文件</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -u</div></pre></td></tr></table></figure>
<h3 id="实例21：某个用户组所打开的文件信息"><a href="#实例21：某个用户组所打开的文件信息" class="headerlink" title="实例21：某个用户组所打开的文件信息"></a>实例21：某个用户组所打开的文件信息</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -g 5555</div></pre></td></tr></table></figure>
<h3 id="实例22：根据文件描述列出对应的文件信息"><a href="#实例22：根据文件描述列出对应的文件信息" class="headerlink" title="实例22：根据文件描述列出对应的文件信息"></a>实例22：根据文件描述列出对应的文件信息</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div></pre></td><td class="code"><pre><div class="line">lsof -d description(like 2)</div><div class="line">例如：lsof  -d  txt</div><div class="line">例如：lsof  -d  1</div><div class="line">例如：lsof  -d  2</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>说明</strong></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;0表示标准输入，1表示标准输出，2表示标准错误，从而可知：所以大多数应用程序所打开的文件的 FD 都是从 3 开始</p>
<h3 id="实例23：根据文件描述范围列出文件信息"><a href="#实例23：根据文件描述范围列出文件信息" class="headerlink" title="实例23：根据文件描述范围列出文件信息"></a>实例23：根据文件描述范围列出文件信息</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -d 2-3</div></pre></td></tr></table></figure>
<h3 id="实例24：列出COMMAND列中包含字符串”-sshd”，且文件描符的类型为txt的文件信息"><a href="#实例24：列出COMMAND列中包含字符串”-sshd”，且文件描符的类型为txt的文件信息" class="headerlink" title="实例24：列出COMMAND列中包含字符串” sshd”，且文件描符的类型为txt的文件信息"></a>实例24：列出COMMAND列中包含字符串” sshd”，且文件描符的类型为txt的文件信息</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -c sshd -a -d txt</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>输出</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div></pre></td><td class="code"><pre><div class="line">[root@localhost soft]<span class="comment"># lsof -c sshd -a -d txt</span></div><div class="line">COMMAND   PID USER  FD   TYPE DEVICE   SIZE    NODE NAME</div><div class="line">sshd     2756 root txt    REG    8,2 409488 1027867 /usr/sbin/sshd</div><div class="line">sshd    24155 root txt    REG    8,2 409488 1027867 /usr/sbin/sshd</div><div class="line">sshd    24905 root txt    REG    8,2 409488 1027867 /usr/sbin/sshd</div><div class="line">sshd    24937 root txt    REG    8,2 409488 1027867 /usr/sbin/sshd</div><div class="line">[root@localhost soft]<span class="comment"># </span></div><div class="line">[root@localhost soft]<span class="comment">#</span></div></pre></td></tr></table></figure>
<h3 id="实例25：列出被进程号为1234的进程所打开的所有IPV4-network-files"><a href="#实例25：列出被进程号为1234的进程所打开的所有IPV4-network-files" class="headerlink" title="实例25：列出被进程号为1234的进程所打开的所有IPV4 network files"></a>实例25：列出被进程号为1234的进程所打开的所有IPV4 network files</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -i 4 -a -p 1234</div></pre></td></tr></table></figure>
<h3 id="实例26：列出目前连接主机peida-linux上端口为：20，21，22，25，53，80相关的所有文件信息，且每隔3秒不断的执行lsof指令"><a href="#实例26：列出目前连接主机peida-linux上端口为：20，21，22，25，53，80相关的所有文件信息，且每隔3秒不断的执行lsof指令" class="headerlink" title="实例26：列出目前连接主机peida.linux上端口为：20，21，22，25，53，80相关的所有文件信息，且每隔3秒不断的执行lsof指令"></a>实例26：列出目前连接主机peida.linux上端口为：20，21，22，25，53，80相关的所有文件信息，且每隔3秒不断的执行lsof指令</h3><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<strong>命令</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">lsof -i @peida.linux:20,21,22,25,53,80  -r  3</div></pre></td></tr></table></figure>
	

	
		<span class="different-posts"><a href="/2017/10/12/2. Linux 命令/53. Linux 命令- lsof/" onclick="window.history.go(-1); return false;">⬅️ Go back </a></span>

	

</article>

	</main>

	<footer class="footer">
	<div class="footer-content">
		
	      <div class="footer__element">
	<p>Hi there, <br />welcome to my Blog glad you found it. Have a look around, will you?</p>
</div>

	    
	      <div class="footer__element">
	<h5>Check out</h5>
	<ul class="footer-links">
		<li class="footer-links__link"><a href="/archives">Archive</a></li>
		
		  <li class="footer-links__link"><a href="/atom.xml">RSS</a></li>
	    
		<li class="footer-links__link"><a href="/about">about page</a></li>
		<li class="footer-links__link"><a href="/tags">Tags</a></li>
		<li class="footer-links__link"><a href="/categories">Categories</a></li>
	</ul>
</div>

	    

		<div class="footer-credit">
			<span>© 2017 失落的乐章 | Powered by <a href="https://hexo.io/">Hexo</a> | Theme <a href="https://github.com/HoverBaum/meilidu-hexo">MeiliDu</a></span>
		</div>

	</div>


</footer>



</body>

</html>
